home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-03-30 | 7.9 KB | 218 lines | [ttro/ttxt] |
-
-
-
-
-
-
-
-
-
-
-
-
-
- ___________________________________________________________________
- Pov-Ray (68040)
- Trigo + loops
-
- Hi !
-
- First of all some tedious informations:
-
- 1) This POV version is designed specifically for Macintosh
- ---------
- 2) Besides, it must be equipped with a 68040 --> NOT a 68040 LC.
- ------
- It will not run on any other platform including 68000, 68020, 68030,
- PPC, SGI, SUN, Amiga, PC, Commodore and so on...
-
- 3) Please, read the POVLEGAL file included in this package.
-
- 4) This is an unofficial version not supported by the POV-Ray team.
- Any questions concerning this versions must be addressed directly to me
- Do not bother the POV-Ray team with any problem you may encounter
- with this version.
- --> You can reach me at the following internet address:
- nguex@ulys.unil.ch
-
- 5) Where to find the official POV-Ray files ?
- You will find the informations in the file «Where to find official POV»
-
- •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
- * *
- * • WHAT'S NEW, and how to use it • *
- * --------------------------- *
- •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
-
- 1) SPEED
- =========
-
- If you are lucky and posess a 68040 with FPU, you will be able to render
- your scenes faster than with the official version.
- The speed boost vary widely from scenes to scenes (3.2% up to 42.3%; average 11.8%)
- You will find the timing results for all the scenes included in the official
- POV-Ray 2.0 package in the file «Timings».
- The major boost are obtained for scenes using Bump Mapping, Spot lights and so on...
-
- Warning:
- Although I have sucessfully rendered all the scenes provided with the official
- version 2.0 package (ie: all files of Level1, Level2, Level3, Math and Demo)
- Some bugs may remain. If you experience a crash during a scene rendering,
- first of all I am not responsible for any damage or losses of any kind caused by
- the use or misuse of the package; secondly, you may want to send me the scene that
- caused a so nasty result so that I can track and kick the bug out of the code.
-
- --------------------------------------------------------------------------
-
- 2) NEW FEATURES
- ================
-
- I have added some new features to the parser.
- It is now possible to use trigonometric functions
- as well as loops to describe more easily the scenes.
- You will find two samples using these new features in this package:
-
- Columns.POV and Helicoidal_Scale.POV
-
- You can use them, modify them and include them freely in your scenes,
- BUT : WARNING !
- • If you decide to share or post a scene that need any of the new features
- • to be rendered, you MUST indicate clearly that this scene was designed
- • specifically for my version and that it will request it to be rendered.
- • Specify also where users can find my version, and the type of computer
- • needed (Macintosh with 68040).
- • This is only to insure that regular users will not be confused with some
- • scenes that they are unable to render.
-
- The next official version of POV-Ray is likely to include such features
- (i.e trigo and loops) but as it is not guarantee that it will be my features,
- the syntax may vary slightly. Anyway it should not be tricky to
- translate (if needed) your scenes to fit the future official version.
- If 68020 and 68030 users cannot wait for the next Pov-Ray release to
- use maths and loops, I may post an "almost standard speed" version for
- those users.
-
- A last word before the new features description:
- If you decribe a scene that use or do not use my new features or samples...
- I am always pleased to see what people can do with POV.
- It is not a request, just a suggestion...
-
- -----------------------------------
- • Syntax of the new maths instructions
- -----------------------------------
-
- abs(), sin(), cos(), tan(), asin(), acos(), atan(), srq(), sqrt()
-
- abs(x) insure that a number will be positive. abs(-x) gives x
- sin(a) a in degrees sin(90) gives 1
- asin(x) result in degrees asin(1) gives 90
- cos(a) a in degrees cos(90) gives 0
- acos(x) result in degrees acos(0) gives 90
- tan(a) a in degrees tan(45) gives 1
- atan(x) result in degrees atan(1) gives 45
- sqr(x) stands for square. It will give the same result as x*x.
- sqrt(x) stands for squared root. sqrt(9) will give 3.
-
- Warning: you must place a + or - sign in front of
- abs(), sin(), cos(), tan(), asin(), acos(), atan(), srq(), sqrt()
- when used as first member of a #declare.
-
- #declare angle = atan(x) WRONG
- #declare angle = +atan(x) RIGHT
- #declare angle = -atan(x) RIGHT
-
- Error messages
- --------------
- cannot calculate tan(90) !
- negative sqrt !
- division by zero !
-
- -----------------------------------
- • Syntax of the other new instructions
- -----------------------------------
-
- RANGE const_name min, max
-
- Constraint the value of «const_name» between «min» and «max».
-
- Example
- -------
- #declare Value = 10
- RANGE Value 5,15 nothing happens
- RANGE Value 5,7 Value is now 7.
-
- Usage
- -----
- this function can be useful if you make a movie where
- several objects are moving along their own path, and
- if you want some objects to stop moving before others.
-
- Error messages
- --------------
- RANGE max value must be greater than min value
-
- -----------------------------------------------------------------------------
-
- FOR var_name < from, to, step >
- ENDFOR
-
- Allows to define complex objects more easily using loops
- (for example to carve an object at a repeated distance,
- align trees on a path and so on.)
- You can use a negative «step», but remember to set a greater value to «from» than to «to»
-
- Examples
- --------
- See files «Columns.POV» and «Helicoidal_Scale.POV»
- which are included in this package.
-
- Error messages
- --------------
- #declare of a floating constant is not allowed within a loop.
- ENDFOR is missing…
- ENDFOR found but FOR is missing…
- loop var name is missing or already declared…
- loop step value must be <> 0 !
- FOR imbrication is not allowed…
-
- I never had to use loop imbrication to describe a scene,
- anyway, if this feature is really lacking, let me know.
- Meanwhile, the solution is to define your object in two separate loops.
-
- For example:
-
- FOR i <-8, 8, 8>
- FOR j <-8, 8, 8>
- object { sphere { <j , i, 0> 4 } texture { TheTexture } }
- ENDFOR
- ENDFOR
-
- should be written something like that:
-
- #declare Three_Spheres =
- union {
- FOR i <-8, 8, 8>
- object { sphere { <i , 0, 0> 4 } }
- ENDFOR
- texture { TheTexture }
- }
-
- FOR i <-8, 8, 8>
- object { Three_Spheres translate <0 , i, 0> }
- ENDFOR
-
- -------------------------------------------------------------
-
- DISCLAIMER
-
- This software is provided as is without any guarantees or warranty.
- Although I have attempted to find and correct any bugs in the
- package, I am not responsible for any damage or losses of any kind
- caused by the use or misuse of the package.
-
- I hope you will enjoy this package anyway !
- Nicolas Guex
-
- INTERNET: nguex@ulys.unil.ch
-
- --------------------------------------------------------------